#include "common.h"
// P、2^5P、2^10P、......
const point fpt[52] = {
        {{0x334c74c7, 0x715a4589, 0xf2660be1, 0x8fe30bbf, 0x6a39c994, 0x5f990446, 0x1f198119, 0x32c4ae2c},
         {0x2139f0a0, 0x02df32e5, 0xc62a4740, 0xd0a9877c, 0x6b692153, 0x59bdcee3, 0xf4f6779c, 0xbc3736a2}},
        {{0x6024666c, 0xa32641e5, 0x03e5565c, 0x791734cd, 0x817f2329, 0xa6d5c2b5, 0x0950d180, 0x25d3debd},
         {0x03fa10a2, 0xd39e1003, 0x20e208b4, 0x04588951, 0xdd5cb0e1, 0xb938c406, 0x679d61ef, 0x92d99a70}},
        {{0xa42c160f, 0xd1952984, 0x6957f8b1, 0x76e1e965, 0x2b712591, 0x61c022aa, 0x55c87aeb, 0x33fcaa40},
         {0x4902c505, 0xf2f3f62c, 0x29622184, 0x2e04362a, 0x4ce8d974, 0xf9a8906e, 0x276d6c81, 0x67a92a7c}},
        {{0x2a35430c, 0xa4ab5e0b, 0x5e68d45f, 0xbdec579c, 0xdaf74d4e, 0x5ac4bcfd, 0x525dd890, 0x60a9a380},
         {0x591628e4, 0xb6cc29b6, 0xac916355, 0x55d2e0a1, 0xb6b5974d, 0x16665a96, 0xc9ced98e, 0xd66000fa}},
        {{0x44608d09, 0x06f4b5b6, 0xe506ea02, 0x1df17698, 0x5197280b, 0xb8e58155, 0xd74af9cc, 0x528d42bd},
         {0xcb5b0e7e, 0x05589f0b, 0xc4732aca, 0x245926ac, 0x0d751eef, 0x56d6ab0b, 0xcf902884, 0x22dc58c3}},
        {{0x861543b3, 0x42ed9aed, 0x2bcd9fee, 0xa6dac905, 0x849882b8, 0x9bb46dc7, 0xf3ed580b, 0x802725f4},
         {0x690f2eeb, 0xb0315cba, 0xfc0f2e5e, 0x7f4cf904, 0xd2bf3bb2, 0xda1e50b7, 0xfeb4112c, 0xf334dddf}},
        {{0xff711a97, 0xb455b45d, 0xf4a73224, 0xc6cdee12, 0xd6a5743f, 0xc5ac0179, 0xae0b27d5, 0x204643bb},
         {0x6f15f8ad, 0xcbe67edc, 0xa9d93e24, 0xf777a811, 0x7d4fde9e, 0xa6b4c286, 0xad369e5f, 0x50023795}},
        {{0x191938c2, 0x559b2ef1, 0x44e6619d, 0x09041200, 0xd49e8c08, 0x9b412237, 0xcb50d796, 0xa9c7b33e},
         {0x6d1a2066, 0xce71beaf, 0x6e3699d4, 0x05982d23, 0x5bdd5dfd, 0x7ef041f6, 0x7e10e1df, 0x92f71df5}},
        {{0xc83969d3, 0x5a8f38d7, 0xf1fe9d22, 0x802e5f11, 0xb3706de1, 0x971e2233, 0x587e2bd4, 0x76b6337d},
         {0x9d9ac34c, 0xa06d4dab, 0xbd1f51ef, 0xfdd1886e, 0x259078f7, 0x753f34e2, 0x0cacf396, 0x8a15315b}},
        {{0xfd188206, 0xbe072db0, 0x1097ce4b, 0x45af81ae, 0x0ba0a6ec, 0x762443e6, 0x0e49afcc, 0x3b81ee49},
         {0x2483a147, 0x77b5743e, 0x8c4ddc8f, 0x0e8ad115, 0x7bd9324d, 0x842e4525, 0x4cd7b6b7, 0x8a092a5d}},
        {{0x4f570b6a, 0xc75f6d92, 0x53508ae9, 0x6cd1f24d, 0xecb82a51, 0x4b970293, 0x1e149e00, 0xb5d00869},
         {0x18181531, 0x8ee79db9, 0x48a9dd71, 0x32736f11, 0xcc482d2b, 0x2978c080, 0x7a504644, 0xe8802fc4}},
        {{0xb9220b59, 0xd53da44b, 0xe0715921, 0x59bf6fdd, 0xff3946ec, 0xf73710e0, 0x7c52f71b, 0x6ae04ed3},
         {0xa1faf0b9, 0x4a05073f, 0xa36bf1e1, 0xc3d9df90, 0x87107ba1, 0xee87e936, 0x85dc4393, 0xfc4bd847}},
        {{0x1f95d502, 0x12fee11c, 0x68207a11, 0x51cce12a, 0x78469bdc, 0xbfae8244, 0x507f9715, 0x08f49b31},
         {0xe2da7430, 0x0a2144ae, 0x029b5aa1, 0x2f6dbb99, 0xb1a12fb7, 0xf0ab1af5, 0x90fefcb6, 0x82ef4238}},
        {{0x35811666, 0x152879e9, 0x995f5ac8, 0xaecd900d, 0x546a77e4, 0x55534f24, 0x2c279791, 0x86789762},
         {0x22e2d858, 0xbd0e28c6, 0xb00e501d, 0x1fe1c1ca, 0x51cd9476, 0x5ebd9095, 0xbc39a143, 0x2cd775eb}},
        {{0x06918211, 0x12e08a5d, 0xd9f2cf00, 0xa02d6feb, 0x6337c216, 0x3f27b715, 0x31ac0de1, 0x29367efc},
         {0xac540eef, 0x52fef397, 0x4b8a16ce, 0x008dd518, 0x7a7faff2, 0x705d57fa, 0xbdba073b, 0xe0848700}},
        {{0x45a2813f, 0x23cddbf8, 0x5a65211f, 0xe6d5b06f, 0x538e06ed, 0x4c73b3fc, 0xb62a231c, 0xc3373690},
         {0xd454550c, 0x04110e90, 0x479e4032, 0xc0cd5bb5, 0x0ebd2db1, 0xa5d05b8c, 0x130cf00f, 0x956fd51a}},
        {{0xc11d186f, 0x92ec9fcb, 0x6455f395, 0xa82acf83, 0xbe00af09, 0x141a0d74, 0x1a7255a2, 0xee6dffb6},
         {0xc784268c, 0x6ea0ffd5, 0xb8f5dd63, 0x0d75990f, 0xc5f89aa0, 0xeba0e4ee, 0xa1e82ea9, 0x98d85a17}},
        {{0x6f19abca, 0x48bb2bc3, 0xbec6147c, 0xa3d46a50, 0x10d5d8e3, 0xcafc1074, 0x7632efad, 0x541346c7},
         {0x5d66948e, 0x8dc5cfee, 0xb76466dd, 0x41b69047, 0xb5f9a93e, 0x7b098a7b, 0x4bd1c525, 0xcb365d00}},
        {{0xeb60f15b, 0x96613a86, 0xad689e96, 0x6de318d4, 0xfd3acfe9, 0x89845897, 0x16a222f3, 0xf2e7a570},
         {0xd2968fec, 0x90a6d777, 0xbcec00a9, 0xababa0d2, 0xcde70f2b, 0xa6e827f2, 0xf4bbea8c, 0x288ff0e0}},
        {{0xa1ebcee6, 0x5cd1a736, 0x532fe3dc, 0xbba9f2f3, 0x8f5f9bbd, 0xb535fd24, 0xa2aac0a7, 0xd65b2f39},
         {0x3da27799, 0xad5be053, 0x1e8c75ef, 0xb5c846f4, 0xda228245, 0x4fc05fe4, 0x685a3530, 0xeab41a97}},
        {{0x44d11582, 0x60ac0d90, 0xd02f01e5, 0x4e70869e, 0xea488fc8, 0xd06cd1ba, 0xc6af19b8, 0x0f9c80be},
         {0xd861b588, 0x1193af79, 0x3ebe0aeb, 0x6b20b1a0, 0x5698176c, 0x58204d8f, 0x4ea59823, 0x490239ba}},
        {{0xdc7e14ba, 0x2ea81495, 0x3030a628, 0x4e693ece, 0x6eb1b895, 0xf0dd7987, 0x660b60f0, 0x83758ece},
         {0x8d59179e, 0xec1d5545, 0xe63ff5be, 0x59365825, 0xf743eb07, 0xca9a4796, 0x1e998f38, 0xe4abe309}},
        {{0x9a03b666, 0x325986c2, 0xeae151eb, 0x54706ace, 0x7613f0de, 0x6a6e73be, 0x5fc17c47, 0xbaa075cd},
         {0xadd29bf2, 0x6fffcbc8, 0x375d8c1a, 0xfab07d54, 0xc58af7b7, 0x20d95b9a, 0x1f4c7f39, 0x6519f820}},
        {{0xd3de0466, 0xf9627435, 0x2617e30a, 0x02b61dd6, 0x22dd8d6f, 0xf9b733a0, 0x59549c34, 0x9b399252},
         {0x379080f5, 0x4e7e4707, 0x57ec3f59, 0xe5c70940, 0x5c54a538, 0xdcb3d9a6, 0x1d5942c4, 0x565d0fc1}},
        {{0x5c42fab2, 0x07c35567, 0x0bffe00d, 0x415bc04c, 0xba0e588c, 0xf2f7b28b, 0x783a3766, 0xa78eafea},
         {0x1316e511, 0x7ba2defd, 0xeda99eae, 0xcb726b9c, 0xc3c8baf7, 0x35adac35, 0xde1e5c0c, 0x9a444260}},
        {{0xa14dfe2a, 0x4cab1d53, 0xf29d5576, 0xca10d5ab, 0x24220f9c, 0x169782b5, 0xc14d72c3, 0x36f84412},
         {0x7cf7efa3, 0x1d7d5651, 0xe4edfd1b, 0x9643ee22, 0xff7973be, 0x10f770e4, 0x6d1d597e, 0x2a4501b5}},
        {{0x1af7b8bb, 0xe12dc16b, 0x53893679, 0xe462afca, 0x256f1881, 0x4bac5266, 0xcc267ef7, 0x4bac6898},
         {0x44cbb149, 0x9b72c54e, 0x37092612, 0x91118de4, 0x973dfc2a, 0xbd2bbf39, 0x05995f72, 0xf87a708d}},
        {{0x5eaca9f2, 0xb986f6b1, 0xbffdb5c5, 0x35a741f2, 0xab594e00, 0x7fca371c, 0x3c880137, 0xcf7ee8c0},
         {0x2f6a77da, 0xed61d2c5, 0x11c873ac, 0x3050b217, 0xcc7853af, 0x7eedf740, 0xf9c473b6, 0x7d387e25}},
        {{0xaa8b5d6d, 0xaf352e7f, 0xa85a4115, 0x65a09eff, 0xbba73800, 0x2f1bbbb1, 0x2e30c20d, 0xfa563d19},
         {0x31cc2211, 0xd170f488, 0xacfe0007, 0x5f6bd812, 0x5b742cdf, 0xba0d9d83, 0x4a0fff6e, 0x43c56da2}},
        {{0x41a343ce, 0x367fde41, 0x9a6c4f24, 0xb1b93240, 0x3911e128, 0x20421845, 0xe9c5698b, 0x982295af},
         {0x821e578c, 0x634c3c14, 0x23a501ca, 0xa70197b0, 0x6849921e, 0xc239f319, 0x7c8b030c, 0xccf6b624}},
        {{0xe1607724, 0x75b61aa1, 0xab0197e1, 0x0638fbd2, 0xf6ae0a9b, 0x291c3437, 0x9a7e9098, 0xe42f40b0},
         {0x64ebd2f6, 0x942d68fb, 0x328aea1d, 0x79f4240f, 0x21c8ca41, 0xe2271abf, 0xb9d94647, 0xdb988493}},
        {{0x54fe6370, 0xec93068e, 0x96689b71, 0x23e8f229, 0xeb184703, 0x33740d31, 0x16418155, 0xc84f7731},
         {0x052c2c4f, 0xbd0ba404, 0xeb21b54d, 0xd6c051c1, 0xe06261f1, 0x0ac0dd54, 0x67754403, 0x380245f2}},
        {{0x678337ee, 0x834dbff6, 0xfef0785a, 0xc607e811, 0xe30a298b, 0xaaefc62b, 0x326afad3, 0xeb5ca335},
         {0x84af54a8, 0x9774fe13, 0x785388b4, 0xca4b6ef5, 0x66f6c642, 0x1346c82d, 0xaa2d53ce, 0xedcc0c2a}},
        {{0xec0b49b7, 0x7adf1f6e, 0xad564ce3, 0xbfff9310, 0xcec8d505, 0xc5d423f9, 0x587fffb1, 0x90987a8e},
         {0x24ad27ef, 0xe8544f00, 0x397e7efd, 0xfb62130b, 0xb1f447a9, 0x588431f2, 0x8556da90, 0xead0c17a}},
        {{0x4a5c9e86, 0xe563507a, 0x90a3f7da, 0x3ed469fa, 0xdfacbe50, 0xd9c1a904, 0x8ec1396e, 0xd3a9f972},
         {0xd9402a08, 0xdaa67a58, 0x62506d6a, 0xa936adef, 0x5875a3dc, 0xb9c19d61, 0x27d24570, 0x61df4bc4}},
        {{0x6f2c9baa, 0x8de3f066, 0xb94964a3, 0xd61f2ec1, 0x8808e1ad, 0x73449d5b, 0xf0653260, 0xc45b5423},
         {0x2518bd75, 0xf3e85d46, 0x49a27e7f, 0x284c2d58, 0xc92aab81, 0xe7271e78, 0x31528559, 0xe80f69cc}},
        {{0x8c366226, 0x138a4d1a, 0x102e0468, 0x147b1c72, 0x5fea946c, 0xaefe9725, 0x11baae83, 0xac66b961},
         {0xe454286e, 0x5d9f2078, 0x74d650f5, 0x8f8e0535, 0xe998a42e, 0x90d24265, 0x553579e6, 0x8fb6390b}},
        {{0x0490e669, 0x7725cf74, 0x4c575843, 0xcb58c73f, 0x01cc6310, 0x4e441529, 0x0859e203, 0xba982df2},
         {0xd34d6b1f, 0x392a81c3, 0xb1e6070a, 0x814c5f88, 0x045056ef, 0xaaf3ddff, 0x09890774, 0xcb8953e5}},
        {{0x38dc9d2b, 0xdee2b5d8, 0x558c2991, 0x5a05142d, 0xb4f9d5c1, 0xc2392c9b, 0x2c3ff462, 0x50c02ef4},
         {0x4917e215, 0x783e01b4, 0xc153cb99, 0xd602419c, 0x20c898e8, 0xdd932aab, 0x0959ad3a, 0xdf10d6aa}},
        {{0x158c9176, 0x870d9541, 0x7527d450, 0x769f45e1, 0x328f6de2, 0xa74509d7, 0x2ae5297f, 0x6bae6f17},
         {0x7891400f, 0xbaece711, 0xe989523d, 0x191f2080, 0x51a2c974, 0xe5bf7d98, 0x3b7de2d6, 0x507c65e0}},
        {{0x9e595bef, 0x6ba80d6d, 0xdcea2b33, 0xbf74e3a2, 0xaf37aec3, 0x6caf1def, 0x85a9d77e, 0x05fb7d6f},
         {0x900b2d09, 0x6324953a, 0x132852e7, 0xb41d83e7, 0x7108c827, 0x1e1dd0e5, 0xf9f4ebb0, 0xee4afcb8}},
        {{0x6269454b, 0xdcd8ade8, 0xfe4974d3, 0xeb7ca8d2, 0x31b7b389, 0x7ad07dd2, 0x11aa92a1, 0x817b19ec},
         {0x4fcc0dc7, 0xb5ada6e9, 0xcd69d646, 0x1833b9bd, 0x96ef6f69, 0x6f7908b6, 0x7dff6cf8, 0x5e5816f7}},
        {{0xacb4c0be, 0xda3fd31e, 0x6975e65b, 0x6c4897a5, 0x2f3782cd, 0xce21ba7b, 0xb2fb1245, 0x87feecc2},
         {0x560d4a58, 0x20edf5aa, 0x609cde9e, 0x0bedfb01, 0x43829dc3, 0x2ec53f59, 0xbd049076, 0x01fa61ee}},
        {{0x37040556, 0xf8e996c9, 0x322fdcb2, 0x965ab458, 0xb9411d1d, 0x4a21d0a2, 0x7e6b3e61, 0x20dc3a01},
         {0x0804d010, 0x143a57f2, 0x537888a1, 0x0d18f09a, 0x6f7ceef0, 0x08591429, 0x6509d5f1, 0x2bd03eec}},
        {{0x1faa54c7, 0x43e59502, 0x29447a71, 0xc3119278, 0xb9fd1ea7, 0x751cbef4, 0xee4e539d, 0xecb35d16},
         {0xf78ecf4f, 0xe111dfd9, 0x5f6d1bf3, 0x679b2287, 0xfe378d58, 0x9f4249e0, 0x075f6430, 0x8563e4ed}},
        {{0xdbea8b56, 0xf099e607, 0x1066aade, 0x45384e96, 0x6e619c13, 0xe812ce3a, 0x5aef9ba2, 0x4ddb9dbb},
         {0x89d1e30a, 0x306430fa, 0x2680bef0, 0x36c52428, 0x40eac595, 0x9ad05721, 0x730ed3ca, 0x81388541}},
        {{0x11be893d, 0x39eac061, 0xfb23d45c, 0x63053090, 0x9d2b3dba, 0x945f37fe, 0x6a4a021b, 0x4e6d4a18},
         {0x941fd695, 0x2c29cd2f, 0x12c3f6c1, 0x3845a496, 0x46f4abfd, 0x8ce30f2d, 0x5bd83dee, 0x72279b20}},
        {{0x3e1e1356, 0x6cbc2b98, 0x0c50bb85, 0x8a1788b6, 0xb3a6e5c4, 0x856700d0, 0xc0404f94, 0x326db9b3},
         {0x4beb4290, 0xf8a8b978, 0x226a5bbe, 0xd0d605f7, 0xbad882c3, 0x13188b88, 0xbab6d0dc, 0x80cc3a5c}},
        {{0x3d11fc00, 0x568a5ada, 0x4eb881a4, 0xf1644901, 0x16062f82, 0xfdb9a3a5, 0xc3a45f29, 0x1eb2cc06},
         {0xabb5a6b8, 0x0551f4d6, 0x37ca1cc5, 0x7ac9d465, 0xa4225f64, 0xb1d327b4, 0xcbf07cf9, 0x2fe98d3c}},
        {{0x3ae3e7b1, 0x2016a1b2, 0x4804ed97, 0xeeab4de6, 0x346a0bea, 0x3cbfff1d, 0x514f1a81, 0xe114fc93},
         {0xa25a08a3, 0x674c2170, 0xa3e54b38, 0xf3badc0d, 0xe04ac730, 0xc38b9c44, 0xbe897bbb, 0x0151b3ac}},
        {{0xa9e1ebbb, 0x107b4dfa, 0xc4c3d95f, 0xf7ee4d8a, 0xd269ad96, 0x3672ef04, 0xd1ee162c, 0xbf822abf},
         {0xb0d35ffa, 0x5aa76cc7, 0x39a0a204, 0x069afdbc, 0xf3d1a9ae, 0x7e734908, 0xfdb04a51, 0x10c4def6}},
        {{0x1529db42, 0x48bb387a, 0xdaeda1eb, 0xa3fa4bfb, 0xe779f44a, 0x881158cf, 0xb07c0513, 0xdcb53eb5},
         {0x0746e1aa, 0x63d0aca2, 0xbc547380, 0x083d8d22, 0xe5fd9181, 0xf0ab2ad4, 0xe629a820, 0x571adb13}},
        };